<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

    

    <title>java面试题（1） | 程序员Sherwin</title>
    <meta name="author" content="Sherwin Wei">
    
    <meta name="description" content="一套偏向初级和中级开发人员的面试题,答案可以自己脑补下,或者百度下,后续有空会逐个写下博客.
一、基础篇1.1、Java基础
面向对象的特征：继承、封装和多态
final, finally, finalize 的区别
Exception、Error、运行时异常与一般异常有何异同
请写出5种常见到的r">
    

   
   <meta name="keywords" content="java面试,java基础,魏远标,Sherwin,java程序员,程序员Sherwin,程序员魏远标">
   
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

    <meta property="og:title" content="java面试题（1）"/>
    <meta property="og:site_name" content="程序员Sherwin"/>

    
    <meta property="og:image" content=""/>
    

    <link rel="icon" type="image/png" href="/favicon.png">
    <link rel="alternate" href="/atom.xml" title="程序员Sherwin" type="application/atom+xml">
    <link rel="stylesheet" href="/css/lib/materialize.min.css">
    <link rel="stylesheet" href="/css/lib/font-awesome.min.css">
    <link rel="stylesheet" href="/css/style.css" media="screen" type="text/css">

    
        <link rel="stylesheet" href="/css/lib/prettify-tomorrow-night-eighties.css" type="text/css">
    
    <!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>


<body>
    <img src="/weixin_favicon.png" style="position: absolute; left: -9999px; opacity: 0; filter: alpha(opacity=0);">

    <nav class="indigo">
    <div class="nav-wrapper">
        <a href="#" data-activates="main-menu" class="button-collapse">
            <i class="fa fa-navicon"></i>
        </a>
        <div class="">
            <a href="/" class="brand-logo hide-on-med-and-down">程序员Sherwin</a>
            <ul class="right hide-on-med-and-down">
                
                    <li>
                        <a class="menu-home " href="/" >
                            <i class="fa fa-home "></i>
                            
                            首页
                        </a>
                    </li>
                
                    <li>
                        <a class="menu-archive " href="/archives" >
                            <i class="fa fa-archive "></i>
                            
                            归档
                        </a>
                    </li>
                
                    <li>
                        <a class="menu-category category-menu" href="javascript:;" data-activates="category-menu" >
                            <i class="fa fa-bookmark "></i>
                            
                            分类
                        </a>
                    </li>
                
                    <li>
                        <a class="menu-reading " href="/reading" >
                            <i class="fa fa-book "></i>
                            
                            读书
                        </a>
                    </li>
                
                    <li>
                        <a class="menu-about " href="/about" >
                            <i class="fa fa-user "></i>
                            
                            关于
                        </a>
                    </li>
                
                    <li>
                        <a class="menu-search modal-trigger " href="#search" >
                            <i class="fa fa-search "></i>
                            
                            搜索
                        </a>
                    </li>
                
            </ul>
            <div>
    <ul class="side-nav indigo darken-1" id="main-menu">
        
        <li class="side-user">
            <div class="row">
                <div class="col s4 no-padding">
                    <img class="avatar-image circle responsive-img" src="http://p5zbw6dku.bkt.clouddn.com/18-3-27/79800938.jpg" alt="User Avatar">
                </div>
                <div class="info col s8 valign-wrapper no-padding">
                    <div class="valign">
                        <p class="name">魏远标</p>
                        <p class="desc">Java后端/全栈</p>
                    </div>
                </div>
            </div>
        </li>
        

        
            <li class="no-padding">
                <a class="waves-effect menu-home " href="/" >
                    <i class="fa fa-home "></i>
                    
                    首页
                </a>
            </li>
        
            <li class="no-padding">
                <a class="waves-effect menu-archive " href="/archives" >
                    <i class="fa fa-archive "></i>
                    
                    归档
                </a>
            </li>
        
            <li class="no-padding">
                <a class="waves-effect menu-category category-menu" href="javascript:;" data-activates="category-menu" >
                    <i class="fa fa-bookmark "></i>
                    
                    分类
                </a>
            </li>
        
            <li class="no-padding">
                <a class="waves-effect menu-reading " href="/reading" >
                    <i class="fa fa-book "></i>
                    
                    读书
                </a>
            </li>
        
            <li class="no-padding">
                <a class="waves-effect menu-about " href="/about" >
                    <i class="fa fa-user "></i>
                    
                    关于
                </a>
            </li>
        
            <li class="no-padding">
                <a class="waves-effect menu-search modal-trigger " href="#search" >
                    <i class="fa fa-search "></i>
                    
                    搜索
                </a>
            </li>
        
    </ul>

    <ul class="side-nav indigo darken-1" id="category-menu">
    

            

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/java/">
                    java <span class="right">12 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/linux/">
                    linux <span class="right">2 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/web前端/">
                    web前端 <span class="right">1 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/生活/">
                    生活 <span class="right">7 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/网络/">
                    网络 <span class="right">1 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/java面试/">
                    java面试 <span class="right">3 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/juc/">
                    juc <span class="right">1 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/jvm/">
                    jvm <span class="right">2 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/mybatis/">
                    mybatis <span class="right">1 篇</span></a>
                </a>
            </li>

        

            <li class="collapse-level-0" collapse-level="0">
                <a class="no-padding" href="/categories/spring/">
                    spring <span class="right">1 篇</span></a>
                </a>
            </li>

        

    </ul>
</div>

        </div>
    </div>
</nav>

<div id="search" class="modal search-modal">
    <div class="row">
        <div class="input-field col s12">
              <input id="search-input" type="text">
              <label for="search-input">搜索</label>
        </div>

    </div>
    <div id="search-result" class="search-result col s12">

    </div>
</div>


    <main>
        <div class="container main-container">
    <nav class="page-nav hide-on-small-only">
    <div class="nav-wrapper indigo">
        <span class="breadcrumb">当前位置（分类目录）</span>
        
            
    
    
    <a class="breadcrumb" href="/categories/java面试/">java面试</a>


        

        
    </div>
</nav>

<article>
    <div class="card">
        <div class="card-content">
            

            <div class="article-title">
                
    
        <h1>java面试题（1）</h1>
    


            </div>
            <time class="pink-link-context" datetime="2018-03-23T09:35:41.000Z"><a href="/java/java面试/java面试题（1）/">2018-03-23</a></time>

            <span id="busuanzi_container_page_pv" class="read-times-container">
    <i class="fa fa-eye"></i>
    <span id="busuanzi_value_page_pv"></span>
</span>

            
    <div class="tags-row">
        
            <a href="/tags/java面试/" class="chip pink lighten-1">java面试</a>
        
    </div>


            <div class="toc pink-link-context hide-on-med-and-down">
    <ol class="section table-of-contents"><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#一、基础篇"><span class="section table-of-contents-text">一、基础篇</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-1、Java基础"><span class="section table-of-contents-text">1.1、Java基础</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-2、Java常见集合"><span class="section table-of-contents-text">1.2、Java常见集合</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-3、进程和线程"><span class="section table-of-contents-text">1.3、进程和线程</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-4、锁机制"><span class="section table-of-contents-text">1.4、锁机制</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-5、JVM"><span class="section table-of-contents-text">1.5、JVM</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-6、设计模式"><span class="section table-of-contents-text">1.6、设计模式</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#1-7、数据结构"><span class="section table-of-contents-text">1.7、数据结构</span></a></li></ol></li><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#二、数据存储和消息队列"><span class="section table-of-contents-text">二、数据存储和消息队列</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#2-1、数据库"><span class="section table-of-contents-text">2.1、数据库</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#2-2、Redis"><span class="section table-of-contents-text">2.2、Redis</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#2-3、消息队列"><span class="section table-of-contents-text">2.3、消息队列</span></a></li></ol></li><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#三、开源框架和容器"><span class="section table-of-contents-text">三、开源框架和容器</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#3-1、SSM-Servlet"><span class="section table-of-contents-text">3.1、SSM/Servlet</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#3-2、Netty"><span class="section table-of-contents-text">3.2、Netty</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#3-3、Tomcat"><span class="section table-of-contents-text">3.3、Tomcat</span></a></li></ol></li><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#四、分布式"><span class="section table-of-contents-text">四、分布式</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#4-2、分布式其他"><span class="section table-of-contents-text">4.2、分布式其他</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#4-3、Dubbo"><span class="section table-of-contents-text">4.3、Dubbo</span></a></li></ol></li><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#五、微服务"><span class="section table-of-contents-text">五、微服务</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#5-1、微服务"><span class="section table-of-contents-text">5.1、微服务</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#5-2、安全问题"><span class="section table-of-contents-text">5.2、安全问题</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#5-3、性能优化"><span class="section table-of-contents-text">5.3、性能优化</span></a></li></ol></li><li class="section table-of-contents-item section table-of-contents-level-2"><a class="section table-of-contents-link" href="#六、其他"><span class="section table-of-contents-text">六、其他</span></a><ol class="section table-of-contents-child"><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#6-1、设计能力"><span class="section table-of-contents-text">6.1、设计能力</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#6-2、业务工程"><span class="section table-of-contents-text">6.2、业务工程</span></a></li><li class="section table-of-contents-item section table-of-contents-level-3"><a class="section table-of-contents-link" href="#6-3、软实力"><span class="section table-of-contents-text">6.3、软实力</span></a></li></ol></li></ol>
</div>


            <div class="entry pink-link-context">
                <p>一套偏向初级和中级开发人员的面试题,答案可以自己脑补下,或者百度下,后续有空会逐个写下博客.</p>
<h2 id="一、基础篇"><a href="#一、基础篇" class="headerlink" title="一、基础篇"></a>一、基础篇</h2><h3 id="1-1、Java基础"><a href="#1-1、Java基础" class="headerlink" title="1.1、Java基础"></a>1.1、Java基础</h3><ul>
<li>面向对象的特征：继承、封装和多态</li>
<li>final, finally, finalize 的区别</li>
<li>Exception、Error、运行时异常与一般异常有何异同</li>
<li>请写出5种常见到的runtime exception</li>
<li>int 和 Integer 有什么区别，Integer的值缓存范围</li>
<li>包装类，装箱和拆箱</li>
<li>String、StringBuilder、StringBuffer</li>
<li>重载和重写的区别</li>
<li>抽象类和接口有什么区别</li>
<li>说说反射的用途及实现</li>
<li>说说自定义注解的场景及实现</li>
<li>HTTP请求的GET与POST方式的区别</li>
<li>Session与Cookie区别</li>
<li>列出自己常用的JDK包</li>
<li>MVC设计思想</li>
<li>equals与==的区别</li>
<li>hashCode和equals方法的区别与联系</li>
<li>什么是Java序列化和反序列化，如何实现Java序列化？或者请解释Serializable 接口的作用</li>
<li>Object类中常见的方法，为什么wait  notify会放在Object里边？</li>
<li>Java的平台无关性如何体现出来的</li>
<li>JDK和JRE的区别</li>
<li>Java 8有哪些新特性<h3 id="1-2、Java常见集合"><a href="#1-2、Java常见集合" class="headerlink" title="1.2、Java常见集合"></a>1.2、Java常见集合</h3></li>
<li>List 和 Set 区别</li>
<li>Set和hashCode以及equals方法的联系</li>
<li>List 和 Map 区别</li>
<li>Arraylist 与 LinkedList 区别</li>
<li>ArrayList 与 Vector 区别</li>
<li>HashMap 和 Hashtable 的区别</li>
<li>HashSet 和 HashMap 区别</li>
<li>HashMap 和 ConcurrentHashMap 的区别</li>
<li>HashMap 的工作原理及代码实现，什么时候用到红黑树</li>
<li>多线程情况下HashMap死循环的问题</li>
<li>HashMap出现Hash DOS攻击的问题</li>
<li>ConcurrentHashMap 的工作原理及代码实现，如何统计所有的元素个数</li>
<li>手写简单的HashMap</li>
<li>看过那些Java集合类的源码</li>
</ul>
<h3 id="1-3、进程和线程"><a href="#1-3、进程和线程" class="headerlink" title="1.3、进程和线程"></a>1.3、进程和线程</h3><ul>
<li>线程和进程的概念、并行和并发的概念</li>
<li>创建线程的方式及实现</li>
<li>进程间通信的方式</li>
<li>说说 CountDownLatch、CyclicBarrier 原理和区别</li>
<li>说说 Semaphore 原理</li>
<li>说说 Exchanger 原理</li>
<li>ThreadLocal 原理分析，ThreadLocal为什么会出现OOM，出现的深层次原理</li>
<li>讲讲线程池的实现原理</li>
<li>线程池的几种实现方式</li>
<li>线程的生命周期，状态是如何转移的</li>
<li>可参考：《Java多线程编程核心技术》<h3 id="1-4、锁机制"><a href="#1-4、锁机制" class="headerlink" title="1.4、锁机制"></a>1.4、锁机制</h3></li>
<li>说说线程安全问题，什么是线程安全，如何保证线程安全</li>
<li>重入锁的概念，重入锁为什么可以防止死锁</li>
<li>产生死锁的四个条件（互斥、请求与保持、不剥夺、循环等待）</li>
<li>如何检查死锁（通过jConsole检查死锁）</li>
<li>volatile 实现原理（禁止指令重排、刷新内存）</li>
<li>synchronized 实现原理（对象监视器）</li>
<li>synchronized 与 lock 的区别</li>
<li>AQS同步队列</li>
<li>CAS无锁的概念、乐观锁和悲观锁</li>
<li>常见的原子操作类</li>
<li>什么是ABA问题，出现ABA问题JDK是如何解决的</li>
<li>乐观锁的业务场景及实现方式</li>
<li>Java 8并法包下常见的并发类</li>
<li>偏向锁、轻量级锁、重量级锁、自旋锁的概念</li>
<li>可参考：《Java多线程编程核心技术》<h3 id="1-5、JVM"><a href="#1-5、JVM" class="headerlink" title="1.5、JVM"></a>1.5、JVM</h3></li>
<li>JVM运行时内存区域划分</li>
<li>内存溢出OOM和堆栈溢出SOE的示例及原因、如何排查与解决</li>
<li>如何判断对象是否可以回收或存活</li>
<li>常见的GC回收算法及其含义</li>
<li>常见的JVM性能监控和故障处理工具类：jps、jstat、jmap、jinfo、jconsole等</li>
<li>JVM如何设置参数</li>
<li>JVM性能调优</li>
<li>类加载器、双亲委派模型、一个类的生命周期、类是如何加载到JVM中的</li>
<li>类加载的过程：加载、验证、准备、解析、初始化</li>
<li>强引用、软引用、弱引用、虚引用</li>
<li>Java内存模型JMM<h3 id="1-6、设计模式"><a href="#1-6、设计模式" class="headerlink" title="1.6、设计模式"></a>1.6、设计模式</h3></li>
<li>常见的设计模式</li>
<li>设计模式的的六大原则及其含义</li>
<li>常见的单例模式以及各种实现方式的优缺点，哪一种最好，手写常见的单利模式</li>
<li>设计模式在实际场景中的应用</li>
<li>Spring中用到了哪些设计模式</li>
<li>MyBatis中用到了哪些设计模式</li>
<li>你项目中有使用哪些设计模式</li>
<li>说说常用开源框架中设计模式使用分析</li>
<li>动态代理很重要！！！<h3 id="1-7、数据结构"><a href="#1-7、数据结构" class="headerlink" title="1.7、数据结构"></a>1.7、数据结构</h3></li>
<li>树（二叉查找树、平衡二叉树、红黑树、B树、B+树）</li>
<li>深度有限算法、广度优先算法</li>
<li>克鲁斯卡尔算法、普林母算法、迪克拉斯算法</li>
<li>什么是一致性Hash及其原理、Hash环问题</li>
<li>常见的排序算法和查找算法：快排、折半查找、堆排序等</li>
<li>1.8、网络/IO基础</li>
<li>BIO、NIO、AIO的概念</li>
<li>什么是长连接和短连接</li>
<li>Http1.0和2.0相比有什么区别，可参考《Http 2.0》</li>
<li>Https的基本概念</li>
<li>三次握手和四次挥手、为什么挥手需要四次</li>
<li>从游览器中输入URL到页面加载的发生了什么？可参考《从输入URL到页面加载发生了什么》<h2 id="二、数据存储和消息队列"><a href="#二、数据存储和消息队列" class="headerlink" title="二、数据存储和消息队列"></a>二、数据存储和消息队列</h2><h3 id="2-1、数据库"><a href="#2-1、数据库" class="headerlink" title="2.1、数据库"></a>2.1、数据库</h3></li>
<li>MySQL 索引使用的注意事项</li>
<li>DDL、DML、DCL分别指什么</li>
<li>explain命令</li>
<li>left join，right join，inner join</li>
<li>数据库事物ACID（原子性、一致性、隔离性、持久性）</li>
<li>事物的隔离级别（读未提交、读以提交、可重复读、可序列化读）</li>
<li>脏读、幻读、不可重复读</li>
<li>数据库的几大范式</li>
<li>数据库常见的命令</li>
<li>说说分库与分表设计</li>
<li>分库与分表带来的分布式困境与应对之策（如何解决分布式下的分库分表，全局表？）</li>
<li>说说 SQL 优化之道</li>
<li>MySQL遇到的死锁问题、如何排查与解决</li>
<li>存储引擎的 InnoDB与MyISAM区别，优缺点，使用场景</li>
<li>索引类别（B+树索引、全文索引、哈希索引）、索引的原理</li>
<li>什么是自适应哈希索引（AHI）</li>
<li>为什么要用 B+tree作为MySQL索引的数据结构</li>
<li>聚集索引与非聚集索引的区别</li>
<li>遇到过索引失效的情况没，什么时候可能会出现，如何解决</li>
<li>limit 20000 加载很慢怎么解决</li>
<li>如何选择合适的分布式主键方案</li>
<li>选择合适的数据存储方案</li>
<li>常见的几种分布式ID的设计方案</li>
<li>常见的数据库优化方案，在你的项目中数据库如何进行优化的<h3 id="2-2、Redis"><a href="#2-2、Redis" class="headerlink" title="2.2、Redis"></a>2.2、Redis</h3></li>
<li>Redis 有哪些数据类型，可参考《Redis常见的5种不同的数据类型详解》</li>
<li>Redis 内部结构</li>
<li>Redis 使用场景</li>
<li>Redis 持久化机制，可参考《使用快照和AOF将Redis数据持久化到硬盘中》</li>
<li>Redis 集群方案与实现</li>
<li>Redis 为什么是单线程的？</li>
<li>缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级</li>
<li>使用缓存的合理性问题</li>
<li>Redis常见的回收策略<h3 id="2-3、消息队列"><a href="#2-3、消息队列" class="headerlink" title="2.3、消息队列"></a>2.3、消息队列</h3></li>
<li>消息队列的使用场景</li>
<li>消息的重发补偿解决思路</li>
<li>消息的幂等性解决思路</li>
<li>消息的堆积解决思路</li>
<li>自己如何实现消息队列</li>
<li>如何保证消息的有序性<h2 id="三、开源框架和容器"><a href="#三、开源框架和容器" class="headerlink" title="三、开源框架和容器"></a>三、开源框架和容器</h2><h3 id="3-1、SSM-Servlet"><a href="#3-1、SSM-Servlet" class="headerlink" title="3.1、SSM/Servlet"></a>3.1、SSM/Servlet</h3></li>
<li>Servlet的生命周期</li>
<li>转发与重定向的区别</li>
<li>BeanFactory 和 ApplicationContext 有什么区别</li>
<li>Spring Bean 的生命周期</li>
<li>Spring IOC 如何实现</li>
<li>Spring中Bean的作用域，默认的是哪一个</li>
<li>说说 Spring AOP、Spring AOP 实现原理</li>
<li>动态代理（CGLib 与 JDK）、优缺点、性能对比、如何选择</li>
<li>Spring 事务实现方式、事务的传播机制、默认的事务类别</li>
<li>Spring 事务底层原理</li>
<li>Spring事务失效（事务嵌套），JDK动态代理给Spring事务埋下的坑，可参考《JDK动态代理给Spring事务埋下的坑！》</li>
<li>如何自定义注解实现功能</li>
<li>Spring MVC 运行流程</li>
<li>Spring MVC 启动流程</li>
<li>Spring 的单例实现原理</li>
<li>Spring 框架中用到了哪些设计模式</li>
<li>Spring 其他产品（Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等）</li>
<li>有没有用到Spring Boot，Spring Boot的认识、原理</li>
<li>MyBatis的原理</li>
<li>可参考《为什么会有Spring》</li>
<li>可参考《为什么会有Spring AOP》<h3 id="3-2、Netty"><a href="#3-2、Netty" class="headerlink" title="3.2、Netty"></a>3.2、Netty</h3></li>
<li>为什么选择 Netty</li>
<li>说说业务中，Netty 的使用场景</li>
<li>原生的 NIO 在 JDK 1.7 版本存在 epoll bug</li>
<li>什么是TCP 粘包/拆包</li>
<li>TCP粘包/拆包的解决办法</li>
<li>Netty 线程模型</li>
<li>说说 Netty 的零拷贝</li>
<li>Netty 内部执行流程</li>
<li>Netty 重连实现<h3 id="3-3、Tomcat"><a href="#3-3、Tomcat" class="headerlink" title="3.3、Tomcat"></a>3.3、Tomcat</h3></li>
<li>Tomcat的基础架构（Server、Service、Connector、Container）</li>
<li>Tomcat如何加载Servlet的</li>
<li>Pipeline-Valve机制</li>
<li>可参考：《四张图带你了解Tomcat系统架构！》</li>
<li><h2 id="四、分布式"><a href="#四、分布式" class="headerlink" title="四、分布式"></a>四、分布式</h2></li>
<li>4.1、Nginx</li>
<li>请解释什么是C10K问题或者知道什么是C10K问题吗？</li>
<li>Nginx简介，可参考《Nginx简介》</li>
<li>正向代理和反向代理.</li>
<li>Nginx几种常见的负载均衡策略</li>
<li>Nginx服务器上的Master和Worker进程分别是什么</li>
<li>使用“反向代理服务器”的优点是什么?<h3 id="4-2、分布式其他"><a href="#4-2、分布式其他" class="headerlink" title="4.2、分布式其他"></a>4.2、分布式其他</h3></li>
<li>谈谈业务中使用分布式的场景</li>
<li>Session 分布式方案</li>
<li>Session 分布式处理</li>
<li>分布式锁的应用场景、分布式锁的产生原因、基本概念</li>
<li>分布是锁的常见解决方案</li>
<li>分布式事务的常见解决方案</li>
<li>集群与负载均衡的算法与实现</li>
<li>说说分库与分表设计，可参考《数据库分库分表策略的具体实现方案》</li>
<li>分库与分表带来的分布式困境与应对之策<h3 id="4-3、Dubbo"><a href="#4-3、Dubbo" class="headerlink" title="4.3、Dubbo"></a>4.3、Dubbo</h3></li>
<li>什么是Dubbo，可参考《Dubbo入门》</li>
<li>什么是RPC、如何实现RPC、RPC 的实现原理，可参考《基于HTTP的RPC实现》</li>
<li>Dubbo中的SPI是什么概念</li>
<li>Dubbo的基本原理、执行流程<h2 id="五、微服务"><a href="#五、微服务" class="headerlink" title="五、微服务"></a>五、微服务</h2><h3 id="5-1、微服务"><a href="#5-1、微服务" class="headerlink" title="5.1、微服务"></a>5.1、微服务</h3></li>
<li>前后端分离是如何做的？</li>
<li>微服务哪些框架</li>
<li>Spring Could的常见组件有哪些？可参考《Spring Cloud概述》</li>
<li>领域驱动有了解吗？什么是领域驱动模型？充血模型、贫血模型</li>
<li>JWT有了解吗，什么是JWT，可参考《前后端分离利器之JWT》</li>
<li>你怎么理解 RESTful</li>
<li>说说如何设计一个良好的 API</li>
<li>如何理解 RESTful API 的幂等性</li>
<li>如何保证接口的幂等性</li>
<li>说说 CAP 定理、BASE 理论</li>
<li>怎么考虑数据一致性问题</li>
<li>说说最终一致性的实现方案</li>
<li>微服务的优缺点，可参考《微服务批判》</li>
<li>微服务与 SOA 的区别</li>
<li>如何拆分服务、水平分割、垂直分割</li>
<li>如何应对微服务的链式调用异常</li>
<li>如何快速追踪与定位问题</li>
<li>如何保证微服务的安全、认证<h3 id="5-2、安全问题"><a href="#5-2、安全问题" class="headerlink" title="5.2、安全问题"></a>5.2、安全问题</h3></li>
<li>如何防范常见的Web攻击、如何方式SQL注入</li>
<li>服务端通信安全攻防</li>
<li>HTTPS原理剖析、降级攻击、HTTP与HTTPS的对比<h3 id="5-3、性能优化"><a href="#5-3、性能优化" class="headerlink" title="5.3、性能优化"></a>5.3、性能优化</h3></li>
<li>性能指标有哪些</li>
<li>如何发现性能瓶颈</li>
<li>性能调优的常见手段</li>
<li>说说你在项目中如何进行性能调优<h2 id="六、其他"><a href="#六、其他" class="headerlink" title="六、其他"></a>六、其他</h2><h3 id="6-1、设计能力"><a href="#6-1、设计能力" class="headerlink" title="6.1、设计能力"></a>6.1、设计能力</h3></li>
<li>说说你在项目中使用过的UML图</li>
<li>你如何考虑组件化、服务化、系统拆分</li>
<li>秒杀场景如何设计</li>
<li>可参考：《秒杀系统的技术挑战、应对策略以及架构设计总结一二！》<h3 id="6-2、业务工程"><a href="#6-2、业务工程" class="headerlink" title="6.2、业务工程"></a>6.2、业务工程</h3></li>
<li>说说你的开发流程、如何进行自动化部署的</li>
<li>你和团队是如何沟通的</li>
<li>你如何进行代码评审</li>
<li>说说你对技术与业务的理解</li>
<li>说说你在项目中遇到感觉最难Bug，是如何解决的</li>
<li>介绍一下工作中的一个你认为最有价值的项目，以及在这个过程中的角色、解决的问题、你觉得你们项目还有哪些不足的地方<h3 id="6-3、软实力"><a href="#6-3、软实力" class="headerlink" title="6.3、软实力"></a>6.3、软实力</h3></li>
<li>说说你的优缺点、亮点</li>
<li>说说你最近在看什么书、什么博客、在研究什么新技术、再看那些开源项目的源代码</li>
<li>说说你觉得最有意义的技术书籍</li>
<li>工作之余做什么事情、平时是如何学习的，怎样提升自己的能力</li>
<li>说说个人发展方向方面的思考</li>
<li>说说你认为的服务端开发工程师应该具备哪些能力</li>
<li>说说你认为的架构师是什么样的，架构师主要做什么</li>
<li>如何看待加班的问题</li>
</ul>

                
<p class="pink-link-context">
    <a href="/java/jvm/强引用、软引用、弱引用、虚引用/" rel="next" title="强引用、软引用、弱引用、虚引用">
    上一篇：强引用、软引用、弱引用、虚引用
  </a>
</p>



<p class="pink-link-context">
    <a href="/java/java锁原理/" rel="next" title="Java中的锁原理、锁优化、CAS、AQS">
    下一篇：Java中的锁原理、锁优化、CAS、AQS
  </a>
</p>


            </div>
			
        </div>
    </div>
</article>




    <section id="comments">
        <!--高速版，加载速度快，使用前需测试页面的兼容性-->
        <div id="SOHUCS" sid="java面试题（1）"></div>
        <script>
          (function(){
            var appid = 'cytwu2Jh8',
            conf = 'prod_f36aa8fb3548cb02167fd6c482acf807';
            var doc = document,
            s = doc.createElement('script'),
            h = doc.getElementsByTagName('head')[0] || doc.head || doc.documentElement;
            s.type = 'text/javascript';
            s.charset = 'utf-8';
            s.src =  'http://assets.changyan.sohu.com/upload/changyan.js?conf='+ conf +'&appid=' + appid;
            h.insertBefore(s,h.firstChild);
            window.SCS_NO_IFRAME = true;
          })()
        </script>    
    </section>





</div>

        <div class="fixed-action-btn float-sitemap">
    <a class="btn-floating btn-large pink">
      <i class="fa fa-caret-square-o-up"></i>
    </a>
    <ul>
      <li><a class="btn-return-top btn-floating waves-effect green" title="回到顶部"><i class="fa fa-arrow-circle-o-up"></i></a></li>
      <li><a class="btn-floating waves-effect button-collapse yellow darken-1"  data-activates="main-menu" title="菜单"><i class="fa fa-navicon"></i></a></li>
    </ul>
  </div>

    </main>
    <footer class="page-footer indigo darken-1">
    
    <div class="footer-container container">
        <div class="row">
            
            <div class="social-group col m4 s12">
                <h5 class="white-text">社交</h5>
                
                    <a class="social-link" href="https://weibo.com/1903200010" target="_blank">
                        <i class="fa fa-2x fa-weibo"></i>
                    </a>
                
                    <a class="social-link" href="https://github.com/sherwin28" target="_blank">
                        <i class="fa fa-2x fa-github"></i>
                    </a>
                
                    <a class="social-link" href="/atom.xml" target="_blank">
                        <i class="fa fa-2x fa-rss"></i>
                    </a>
                
                
     <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <div class="site-visitors-container white-text">
        <span>
            <i class="fa fa-user"></i>
            <span class="busuanzi-value" id="busuanzi_value_site_uv"></span>
        </span>
        <span>&nbsp;|&nbsp;</span>
        <span>
            <i class="fa fa-eye"></i>
            <span class="busuanzi-value" id="busuanzi_value_site_pv"></span>
        </span>
    </div>


            </div>
            

            
            <div class="col m8 s12">
                <h5 class="white-text">友情链接</h5>
                
                    <a class="social-link" href="http://blog.didispace.com/" target="_blank">程序猿DD</a>
                
                    <a class="social-link" href="https://springcloud.cc/" target="_blank">Spring Cloud中文网</a>
                
                    <a class="social-link" href="http://itmuch.com/" target="_blank">周立|Spring Cloud </a>
                
            </div>
            
        </div>
    </div>
    

    <div class="footer-copyright pink-link-context">
        <div class="container">
            © 2018 weiyuanbiao.cn, All rights reserved.
            <a href="http://weiyuanbiao.cn" style="margin-left:10px;">weiyuanbiao.cn</a>
            <a href="http://www.miitbeian.gov.cn" target="_blank" style="margin-left:10px;">粤ICP备15018188号-1</a>
            <!-- 
            <p class="right" style="margin-top: 0;">本博客由 <a href="https://hexo.io">Hexo</a> 强力驱动 | 主题 <a href="https://github.com/raytaylorlin/hexo-theme-raytaylorism">raytaylorism</a></p>
            -->
        </div>
    </div>
</footer>


<noscript>
    <div class="noscript">
        <p class="center-align">当前网速较慢或者你使用的浏览器不支持博客特定功能，请尝试刷新或换用Chrome、Firefox等现代浏览器</p>
    </div>
</noscript>
<div class="noscript">
    <p class="center-align">当前网速较慢或者你使用的浏览器不支持博客特定功能，请尝试刷新或换用Chrome、Firefox等现代浏览器</p>
</div>


<script src="/js/jquery.min.js"></script>
<script src="/js/materialize.min.js"></script>

<script>
    (function($) {
        $(document).ready(function() {
            // 隐藏禁用javascript（针对微信内置浏览器）的提示
            $('.noscript').hide();

            // 图片缩放效果
            var $imgs = $('img').not('.slider-image').not('.avatar-image').not('.carousel-image').not('.card-cover-image').not('.qrcode');

            // 给图片加上点击放大效果（materialbox插件）
            $imgs.addClass('materialboxed').each(function(i, el) {
                $(this).attr('data-caption', $(this).attr('alt') || ' ');
            }).materialbox();

            // 优化表格的显示
            $('table').each(function() {
                var $table = $(this);
                // 除去多行代码的情况
                if ($table.find('pre').length == 0) {
                    $table.addClass('responsive-table striped bordered');
                }
            });

            // 首页幻灯片
            $('.slider').slider({indicators: true, full_width: true, interval: 8000});

            $(".button-collapse").sideNav();
            $(".category-menu").sideNav();

            // 针对gallery post
            $('.carousel').carousel({full_width: true});
            $('.carousel-control.prev').click(function() {
                $('.carousel').carousel('prev');
            });
            $('.carousel-control.next').click(function() {
                $('.carousel').carousel('next');
            });

            // 文章目录
            $('article').not('.simple-article').find('h1').add('h2').add('h3').add('h4').add('h5').add('h6').scrollSpy();

            // 目录随屏幕滚动（防止目录过长越过footer）
            var $toc = $('.toc');
            var scrollTargetTop = 0;
            $(window).scroll(function() {
                var $activeLink = $toc.find('a.active.section');
                if ($(window).scrollTop() < 100) {
                    scrollTargetTop = 0;
                } else {
                    if ($activeLink[0]) {
                        scrollTargetTop = $activeLink.offset().top - $toc.offset().top;
                    }
                }
                $toc.css('top', '-' + scrollTargetTop + 'px');
            });

            // 修正文章目录的left-border颜色
            var color = $('.table-of-contents-text').css('color');
            $('.table-of-contents-link').css('border-left-color', color);

            // 针对移动端做的优化：FAB按钮点击一下收回
            if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
                $('.fixed-action-btn').addClass('click-to-toggle');
            }
            // 回到顶部
            $('.btn-return-top').click(function() {
                $('body, html').animate({
                    scrollTop: 0
                }, 500);
            });

            // 重置读书页面的Tab标签页的颜色
            $('li.tab a').hover(function() {
                $(this).toggleClass('text-lighten-4');
            });
            $('.indicator').addClass('pink lighten-2');

            
            // 添加new标签
            $('.menu-reading').append('<span class="new badge pink"></span>');
            

            // 搜索功能
            $('.modal-trigger').leanModal({
                // 打开搜索框时自动聚焦
                ready: function() {
                    if ($('#search').is(":visible")) {
                        $('#search-input').focus();
                    }
                }
            });
            var searchXml = "search.xml";
            if (searchXml.length == 0) {
             	searchXml = "search.xml";
            }
            var searchPath = "/" + searchXml;
            initSearch(searchPath, 'search-input', 'search-result');
        });

        // 初始化搜索与匹配函数
        var initSearch = function(path, search_id, content_id) {
            'use strict';
            $.ajax({
                url: path,
                dataType: "xml",
                success: function(xmlResponse) {
                    // get the contents from search data
                    var datas = $("entry", xmlResponse).map(function() {
                        return {
                            title: $("title", this).text(),
                            content: $("content", this).text(),
                            url: $("url", this).text()
                        };
                    }).get();
                    var $input = document.getElementById(search_id);
                    var $resultContent = document.getElementById(content_id);
                    $input.addEventListener('input', function() {
                        var str = '<ul class=\"search-result-list\">';
                        var keywords = this.value.trim().toLowerCase().split(/[\s\-]+/);
                        $resultContent.innerHTML = "";
                        if (this.value.trim().length <= 0) {
                            return;
                        }
                        // perform local searching
                        datas.forEach(function(data) {
                            var isMatch = true;
                            var content_index = [];
                            var data_title = data.title.trim().toLowerCase();
                            var data_content = data.content.trim().replace(/<[^>]+>/g, "").toLowerCase();
                            var data_url = data.url;
                            var index_title = -1;
                            var index_content = -1;
                            var first_occur = -1;
                            // only match artiles with not empty titles and contents
                            if (data_title != '' && data_content != '') {
                                keywords.forEach(function(keyword, i) {
                                    index_title = data_title.indexOf(keyword);
                                    index_content = data_content.indexOf(keyword);
                                    if (index_title < 0 && index_content < 0) {
                                        isMatch = false;
                                    } else {
                                        if (index_content < 0) {
                                            index_content = 0;
                                        }
                                        if (i == 0) {
                                            first_occur = index_content;
                                        }
                                    }
                                });
                            }
                            // show search results
                            if (isMatch) {
                                keywords.forEach(function(keyword) {
                                    var regS = new RegExp(keyword, "gi");
                                    data_title = data_title.replace(regS, "<span class=\"search-keyword pink lighten-2\">" + keyword + "</span>");
                                });

                                str += "<li><a href='" + data_url + "' class='search-result-title'>" + data_title + "</a>";
                                var content = data.content.trim().replace(/<[^>]+>/g, "");
                                if (first_occur >= 0) {
                                    // cut out 100 characters
                                    var start = first_occur - 20;
                                    var end = first_occur + 80;
                                    if (start < 0) {
                                        start = 0;
                                    }
                                    if (start == 0) {
                                        end = 100;
                                    }
                                    if (end > content.length) {
                                        end = content.length;
                                    }
                                    var match_content = content.substring(start, end);
                                    // highlight all keywords
                                    keywords.forEach(function(keyword) {
                                        var regS = new RegExp(keyword, "gi");
                                        match_content = match_content.replace(regS, "<span class=\"search-keyword pink lighten-2\">" + keyword + "</span>");
                                    });

                                    str += "<p class=\"search-result\">..." + match_content + "...</p>"
                                }
                                str += "</li>";
                            }
                        });
                        str += "</ul>";
                        $resultContent.innerHTML = str;
                    });
                }
            });
        }
    })(jQuery);
</script>


<script src="/js/prettify.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("pre").addClass("prettyprint");
        prettyPrint();
    });
</script>




<script type="text/javascript" src="http://tajs.qq.com/stats?sId=65472120" charset="UTF-8"></script>



<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript" async
  src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>





</body>
</html>
